﻿using System;
using System.Collections.Generic;
using System.Collections;
using System.Linq;
using System.Text;

namespace Negocio
{
	[Serializable]
    public class Vehiculo
    {
    	private int id;
        private String dominio;
        private String marca;
        private int modelo;
        private List<InfraccionVehiculo> listaInfraccion;
        private Propietario propietario;

        public Vehiculo() {
        	this.dominio = "";
            this.listaInfraccion = new List<InfraccionVehiculo>();        	
        }
        
        public Vehiculo(String dom, Propietario prop)
        {
            dominio = dom;
            propietario = prop;
            this.listaInfraccion = new List<InfraccionVehiculo>();
        }

        public int Id {
        	get { return this.id; }
        	set { id = value; }
        }
        
        public String Dominio {
        	get { return dominio; }
        	set { dominio = value; }
        }
        
        public String Marca {
        	get { return marca; }
        	set { marca = value; }
        }
        
        public int Modelo {
        	get { return modelo; }
        	set { modelo = value; }
        }
        
        public Propietario Propietario {
        	get { return propietario;}
        	set { propietario = value; }
        }
        
        public void agregarInfraccion(InfraccionVehiculo infraccion)
        {
            listaInfraccion.Add(infraccion);
        }
        
        public void borrarInfraccion(InfraccionVehiculo infraccion)
        {
        	listaInfraccion.Remove(infraccion);
        }
		
        public List<InfraccionVehiculo> ListaInfracciones {
        	get { return this.listaInfraccion; }
        	set { listaInfraccion = value; }
        }
        
		public override string ToString()
		{
			return "" + this.Marca + " - " + this.Dominio;
		}
		
        public ArrayList convertirARelacional()
        {
            ArrayList datos = new ArrayList();
            datos.Add(this.Dominio);
            datos.Add(this.Marca);
            datos.Add(this.Modelo);
            datos.Add(this.Propietario.Id);
            return datos;
        }
        
        public void guardarVehiculo() {
        	ArrayList vehiculos = this.convertirARelacional();
        	Datos.Datos datos = new Datos.Datos();
        	datos.guardarVehiculos(vehiculos);
        }
		
    }
}
